package cn.yx.common.core.mapping;

import java.util.List;

/**
 * <p>mapstruct基础映射接口，DTO与VO的映射</p>
 *
 * @param <Dto>   DTO类
 * @param <InVo>  VO输入类
 * @param <OutVo> VO输出类
 * @author Wgssmart
 */
public interface DtoVoMapping<Dto, InVo, OutVo> {

    /**
     * DTO转OutVo
     *
     * @param dto
     * @return
     */
    OutVo dtoToOutVo(Dto dto);

    /**
     * DTO集合转OutVo集合
     *
     * @param dtoList
     * @return
     */
    List<OutVo> dtoToOutVo(List<Dto> dtoList);

    /**
     * InVo转DTO
     *
     * @param inVo
     * @return
     */
    Dto inVoToDto(InVo inVo);

    /**
     * InVo集合转DTO集合
     *
     * @param inVoList
     * @return
     */
    List<Dto> inVoToDto(List<InVo> inVoList);

}
